package com.allwees.bs.module.core.dynamic.strategy.moudule;

import com.allwees.bs.core.model.order.entity.SkuSnapModel;
import com.allwees.bs.module.core.dynamic.data.DynamicInjectQuery;
import com.allwees.bs.module.core.dynamic.model.ProductSnap;
import com.allwees.bs.module.core.dynamic.model.SkuSnap;
import com.allwees.bs.module.core.dynamic.strategy.DynamicInjectStrategy;
import com.allwees.core.common.util.DynamicFieldUtil;
import lombok.Setter;

import java.util.HashMap;
import java.util.Map;

@Setter
public class DynamicInjectSkuSnapStrategy extends DynamicInjectStrategy {

    private DynamicInjectQuery query;

    @Override
    public Object inject(String key, Object target) {

        SkuSnapModel skuSnap = query.findSkuSnapByKey(key);

        Map<String, Object> map = new HashMap<>();
        if (null != skuSnap) {
            String categoryFullname = query.findCategoryFullname(skuSnap.getCategoryNo());
            map.put("product", new ProductSnap(categoryFullname, skuSnap));
            map.put("sku", new SkuSnap(skuSnap));
        }
        return DynamicFieldUtil.getTarget(target, map);
    }
}
